%typemap(csattributes) Urho3D::ParticleGraphPinFlag "[global::System.Flags]";
using ParticleGraphPinFlags = Urho3D::ParticleGraphPinFlag;
%typemap(ctype) ParticleGraphPinFlags "size_t";
%typemap(out) ParticleGraphPinFlags "$result = (size_t)$1.AsInteger();"
%csattribute(Urho3D::ParticleGraphEffect, %arg(unsigned int), NumLayers, GetNumLayers, SetNumLayers);
%csattribute(Urho3D::ParticleGraphAttributeLayout, %arg(unsigned int), NumAttributes, GetNumAttributes);
%csattribute(Urho3D::ParticleGraphAttributeLayout, %arg(unsigned int), RequiredMemory, GetRequiredMemory);
%csattribute(Urho3D::ParticleGraphBufferLayout, %arg(unsigned int), RequiredMemory, GetRequiredMemory);
%csattribute(Urho3D::ParticleGraphPin, %arg(bool), IsInput, IsInput);
%csattribute(Urho3D::ParticleGraphPin, %arg(Urho3D::ParticleGraphPinFlags), Flags, GetFlags);
%csattribute(Urho3D::ParticleGraphPin, %arg(ea::string), Name, GetName);
%csattribute(Urho3D::ParticleGraphPin, %arg(Urho3D::StringHash), NameHash, GetNameHash);
%csattribute(Urho3D::ParticleGraphPin, %arg(Urho3D::VariantType), RequestedType, GetRequestedType);
%csattribute(Urho3D::ParticleGraphPin, %arg(Urho3D::VariantType), ValueType, GetValueType);
%csattribute(Urho3D::ParticleGraphPin, %arg(unsigned int), AttributeIndex, GetAttributeIndex);
%csattribute(Urho3D::ParticleGraphPin, %arg(Urho3D::ParticleGraphPinRef), MemoryReference, GetMemoryReference);
%csattribute(Urho3D::ParticleGraphPin, %arg(Urho3D::ParticleGraphContainerType), ContainerType, GetContainerType);
%csattribute(Urho3D::ParticleGraphPin, %arg(bool), Connected, GetConnected);
%csattribute(Urho3D::ParticleGraphPin, %arg(unsigned int), ConnectedNodeIndex, GetConnectedNodeIndex);
%csattribute(Urho3D::ParticleGraphPin, %arg(unsigned int), ConnectedPinIndex, GetConnectedPinIndex);
%csattribute(Urho3D::ParticleGraph, %arg(unsigned int), NumNodes, GetNumNodes);
%csattribute(Urho3D::ParticleGraphLayer, %arg(unsigned int), Capacity, GetCapacity, SetCapacity);
%csattribute(Urho3D::ParticleGraphLayer, %arg(float), TimeScale, GetTimeScale, SetTimeScale);
%csattribute(Urho3D::ParticleGraphLayer, %arg(bool), IsLoop, IsLoop, SetLoop);
%csattribute(Urho3D::ParticleGraphLayer, %arg(float), Duration, GetDuration, SetDuration);
%csattribute(Urho3D::ParticleGraphLayer, %arg(Urho3D::ParticleGraph), EmitGraph, GetEmitGraph);
%csattribute(Urho3D::ParticleGraphLayer, %arg(Urho3D::ParticleGraph), InitGraph, GetInitGraph);
%csattribute(Urho3D::ParticleGraphLayer, %arg(Urho3D::ParticleGraph), UpdateGraph, GetUpdateGraph);
%csattribute(Urho3D::ParticleGraphLayer, %arg(Urho3D::ParticleGraphLayer::AttributeBufferLayout), AttributeBufferLayout, GetAttributeBufferLayout);
%csattribute(Urho3D::ParticleGraphLayer, %arg(Urho3D::ParticleGraphAttributeLayout), AttributeLayout, GetAttributeLayout);
%csattribute(Urho3D::ParticleGraphLayer, %arg(Urho3D::ParticleGraphBufferLayout), IntermediateValues, GetIntermediateValues);
%csattribute(Urho3D::ParticleGraphLayer, %arg(unsigned int), TempBufferSize, GetTempBufferSize);
%csattribute(Urho3D::ParticleGraphEmitter, %arg(bool), IsEmitting, IsEmitting, SetEmitting);
%csattribute(Urho3D::ParticleGraphEmitter, %arg(Urho3D::ParticleGraphEffect *), Effect, GetEffect, SetEffect);
%csattribute(Urho3D::ParticleGraphEmitter, %arg(Urho3D::ResourceRef), EffectAttr, GetEffectAttr, SetEffectAttr);
%csattribute(Urho3D::ParticleGraphEmitter, %arg(unsigned int), ViewMask, GetViewMask, SetViewMask);
%csattribute(Urho3D::ParticleGraphEmitter, %arg(unsigned int), LightMask, GetLightMask, SetLightMask);
%csattribute(Urho3D::ParticleGraphEmitter, %arg(unsigned int), ShadowMask, GetShadowMask, SetShadowMask);
%csattribute(Urho3D::ParticleGraphEmitter, %arg(unsigned int), ZoneMask, GetZoneMask, SetZoneMask);
%csattribute(Urho3D::ParicleGraphUniform, %arg(ea::string), Name, GetName);
%csattribute(Urho3D::ParicleGraphUniform, %arg(Urho3D::StringHash), NameHash, GetNameHash);
%csattribute(Urho3D::ParticleGraphLayerInstance, %arg(unsigned int), NumActiveParticles, GetNumActiveParticles);
%csattribute(Urho3D::ParticleGraphLayerInstance, %arg(unsigned int), NumAttributes, GetNumAttributes);
%csattribute(Urho3D::ParticleGraphLayerInstance, %arg(Urho3D::ParticleGraphEmitter *), Emitter, GetEmitter);
%csattribute(Urho3D::ParticleGraphLayerInstance, %arg(Urho3D::ParticleGraphLayer *), Layer, GetLayer);
%csattribute(Urho3D::ParticleGraphNode, %arg(Urho3D::ParticleGraph *), Graph, GetGraph);
%csattribute(Urho3D::ParticleGraphNodes::PatternMatchingNode, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::BurstTimer, %arg(float), Delay, GetDelay, SetDelay);
%csattribute(Urho3D::ParticleGraphNodes::BurstTimer, %arg(float), Interval, GetInterval, SetInterval);
%csattribute(Urho3D::ParticleGraphNodes::BurstTimer, %arg(int), Cycles, GetCycles, SetCycles);
%csattribute(Urho3D::ParticleGraphNodes::LimitVelocity, %arg(float), Dampen, GetDampen, SetDampen);
%csattribute(Urho3D::ParticleGraphNodes::Attribute, %arg(ea::string), AttributeName, GetAttributeName, SetAttributeName);
%csattribute(Urho3D::ParticleGraphNodes::GetAttribute, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::SetAttribute, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::Bounce, %arg(float), Dampen, GetDampen, SetDampen);
%csattribute(Urho3D::ParticleGraphNodes::Bounce, %arg(float), BounceFactor, GetBounceFactor, SetBounceFactor);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(float), Radius, GetRadius, SetRadius);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(float), RadiusThickness, GetRadiusThickness, SetRadiusThickness);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(float), Angle, GetAngle, SetAngle);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(float), Length, GetLength, SetLength);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(Urho3D::Vector3), Translation, GetTranslation, SetTranslation);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(Urho3D::Quaternion), Rotation, GetRotation, SetRotation);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(Urho3D::Vector3), Scale, GetScale, SetScale);
%csattribute(Urho3D::ParticleGraphNodes::Cone, %arg(int), From, GetFrom, SetFrom);
%csattribute(Urho3D::ParticleGraphNodes::Hemisphere, %arg(float), Radius, GetRadius, SetRadius);
%csattribute(Urho3D::ParticleGraphNodes::Hemisphere, %arg(float), RadiusThickness, GetRadiusThickness, SetRadiusThickness);
%csattribute(Urho3D::ParticleGraphNodes::Hemisphere, %arg(Urho3D::Vector3), Translation, GetTranslation, SetTranslation);
%csattribute(Urho3D::ParticleGraphNodes::Hemisphere, %arg(Urho3D::Quaternion), Rotation, GetRotation, SetRotation);
%csattribute(Urho3D::ParticleGraphNodes::Hemisphere, %arg(Urho3D::Vector3), Scale, GetScale, SetScale);
%csattribute(Urho3D::ParticleGraphNodes::Hemisphere, %arg(int), From, GetFrom, SetFrom);
%csattribute(Urho3D::ParticleGraphNodes::Sphere, %arg(float), Radius, GetRadius, SetRadius);
%csattribute(Urho3D::ParticleGraphNodes::Sphere, %arg(float), RadiusThickness, GetRadiusThickness, SetRadiusThickness);
%csattribute(Urho3D::ParticleGraphNodes::Sphere, %arg(Urho3D::Vector3), Translation, GetTranslation, SetTranslation);
%csattribute(Urho3D::ParticleGraphNodes::Sphere, %arg(Urho3D::Quaternion), Rotation, GetRotation, SetRotation);
%csattribute(Urho3D::ParticleGraphNodes::Sphere, %arg(Urho3D::Vector3), Scale, GetScale, SetScale);
%csattribute(Urho3D::ParticleGraphNodes::Sphere, %arg(int), From, GetFrom, SetFrom);
%csattribute(Urho3D::ParticleGraphNodes::Constant, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::Constant, %arg(Urho3D::Variant), Value, GetValue, SetValue);
%csattribute(Urho3D::ParticleGraphNodes::Curve, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::Curve, %arg(float), Duration, GetDuration, SetDuration);
%csattribute(Urho3D::ParticleGraphNodes::Curve, %arg(bool), IsLooped, IsLooped, SetLooped);
%csattribute(Urho3D::ParticleGraphNodes::Curve::Instance, %arg(Urho3D::ParticleGraphNodes::Curve *), NodeInstace, GetNodeInstace);
%csattribute(Urho3D::ParticleGraphNodes::Print, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::Random, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::Random, %arg(Urho3D::Variant), Min, GetMin, SetMin);
%csattribute(Urho3D::ParticleGraphNodes::Random, %arg(Urho3D::Variant), Max, GetMax, SetMax);
%csattribute(Urho3D::ParticleGraphNodes::RenderBillboard, %arg(Urho3D::ResourceRef), Material, GetMaterial, SetMaterial);
%csattribute(Urho3D::ParticleGraphNodes::RenderBillboard, %arg(int), Rows, GetRows, SetRows);
%csattribute(Urho3D::ParticleGraphNodes::RenderBillboard, %arg(int), Columns, GetColumns, SetColumns);
%csattribute(Urho3D::ParticleGraphNodes::RenderBillboard, %arg(int), FaceCameraMode, GetFaceCameraMode, SetFaceCameraMode);
%csattribute(Urho3D::ParticleGraphNodes::RenderBillboard, %arg(bool), SortByDistance, GetSortByDistance, SetSortByDistance);
%csattribute(Urho3D::ParticleGraphNodes::RenderBillboard, %arg(bool), IsWorldspace, GetIsWorldspace, SetIsWorldspace);
%csattribute(Urho3D::ParticleGraphNodes::RenderBillboard, %arg(Urho3D::Rect), Crop, GetCrop, SetCrop);
%csattribute(Urho3D::ParticleGraphNodes::RenderMesh, %arg(Urho3D::ResourceRef), Model, GetModel, SetModel);
%csattribute(Urho3D::ParticleGraphNodes::RenderMesh, %arg(Urho3D::ResourceRefList), Material, GetMaterial, SetMaterial);
%csattribute(Urho3D::ParticleGraphNodes::RenderMesh, %arg(bool), IsWorldspace, GetIsWorldspace, SetIsWorldspace);
%csattribute(Urho3D::ParticleGraphNodes::Uniform, %arg(ea::string), UniformName, GetUniformName, SetUniformName);
%csattribute(Urho3D::ParticleGraphNodes::GetUniform, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::SetUniform, %arg(unsigned int), NumPins, GetNumPins);
%csattribute(Urho3D::ParticleGraphNodes::Circle, %arg(float), Radius, GetRadius, SetRadius);
%csattribute(Urho3D::ParticleGraphNodes::Circle, %arg(float), RadiusThickness, GetRadiusThickness, SetRadiusThickness);
%csattribute(Urho3D::ParticleGraphNodes::Circle, %arg(Urho3D::Vector3), Translation, GetTranslation, SetTranslation);
%csattribute(Urho3D::ParticleGraphNodes::Circle, %arg(Urho3D::Quaternion), Rotation, GetRotation, SetRotation);
%csattribute(Urho3D::ParticleGraphNodes::Circle, %arg(Urho3D::Vector3), Scale, GetScale, SetScale);
%csattribute(Urho3D::ParticleGraphNodes::Box, %arg(Urho3D::Vector3), BoxThickness, GetBoxThickness, SetBoxThickness);
%csattribute(Urho3D::ParticleGraphNodes::Box, %arg(Urho3D::Vector3), Translation, GetTranslation, SetTranslation);
%csattribute(Urho3D::ParticleGraphNodes::Box, %arg(Urho3D::Quaternion), Rotation, GetRotation, SetRotation);
%csattribute(Urho3D::ParticleGraphNodes::Box, %arg(Urho3D::Vector3), Scale, GetScale, SetScale);
%csattribute(Urho3D::ParticleGraphNodes::Box, %arg(int), From, GetFrom, SetFrom);
